<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>LeastSquaresConverter (Apache Commons Math 3.6.1 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../stylesheet.css" title="Style">
</head>
<body>
<script type="text/javascript"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="LeastSquaresConverter (Apache Commons Math 3.6.1 API)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/LeastSquaresConverter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/GradientMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.scalar"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LineSearch.html" title="class in org.apache.commons.math3.optim.nonlinear.scalar"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html" target="_top">Frames</a></li>
<li><a href="LeastSquaresConverter.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.commons.math3.optim.nonlinear.scalar</div>
<h2 title="Class LeastSquaresConverter" class="title">Class LeastSquaresConverter</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.commons.math3.optim.nonlinear.scalar.LeastSquaresConverter</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateFunction</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="strong">LeastSquaresConverter</span>
extends <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>
implements <a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateFunction</a></pre>
<div class="block">This class converts
 <a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis"><code>vectorial objective functions</code></a> to
 <a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html" title="interface in org.apache.commons.math3.analysis"><code>scalar objective functions</code></a>
 when the goal is to minimize them.
 <br/>
 This class is mostly used when the vectorial objective function represents
 a theoretical result computed from a point set applied to a model and
 the models point must be adjusted to fit the theoretical result to some
 reference observations. The observations may be obtained for example from
 physical measurements whether the model is built from theoretical
 considerations.
 <br/>
 This class computes a possibly weighted squared sum of the residuals, which is
 a scalar value. The residuals are the difference between the theoretical model
 (i.e. the output of the vectorial objective function) and the observations. The
 class implements the <a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html" title="interface in org.apache.commons.math3.analysis"><code>MultivariateFunction</code></a> interface and can therefore be
 minimized by any optimizer supporting scalar objectives functions.This is one way
 to perform a least square estimation. There are other ways to do this without using
 this converter, as some optimization algorithms directly support vectorial objective
 functions.
 <br/>
 This class support combination of residuals with or without weights and correlations.</div>
<dl><dt><span class="strong">Since:</span></dt>
  <dd>2.0</dd>
<dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html" title="interface in org.apache.commons.math3.analysis"><code>MultivariateFunction</code></a>, 
<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis"><code>MultivariateVectorFunction</code></a></dd></dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html#LeastSquaresConverter(org.apache.commons.math3.analysis.MultivariateVectorFunction,%20double[])">LeastSquaresConverter</a></strong>(<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateVectorFunction</a>&nbsp;function,
                     double[]&nbsp;observations)</code>
<div class="block">Builds a simple converter for uncorrelated residuals with identical
 weights.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html#LeastSquaresConverter(org.apache.commons.math3.analysis.MultivariateVectorFunction,%20double[],%20double[])">LeastSquaresConverter</a></strong>(<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateVectorFunction</a>&nbsp;function,
                     double[]&nbsp;observations,
                     double[]&nbsp;weights)</code>
<div class="block">Builds a simple converter for uncorrelated residuals with the
 specified weights.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><strong><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html#LeastSquaresConverter(org.apache.commons.math3.analysis.MultivariateVectorFunction,%20double[],%20org.apache.commons.math3.linear.RealMatrix)">LeastSquaresConverter</a></strong>(<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateVectorFunction</a>&nbsp;function,
                     double[]&nbsp;observations,
                     <a href="../../../../../../../org/apache/commons/math3/linear/RealMatrix.html" title="interface in org.apache.commons.math3.linear">RealMatrix</a>&nbsp;scale)</code>
<div class="block">Builds a simple converter for correlated residuals with the
 specified weights.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method_summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>double</code></td>
<td class="colLast"><code><strong><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html#value(double[])">value</a></strong>(double[]&nbsp;point)</code>
<div class="block">Compute the value for the function at the given point.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods_inherited_from_class_java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</a>, <a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true#wait(long,%20int)" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor_detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="LeastSquaresConverter(org.apache.commons.math3.analysis.MultivariateVectorFunction, double[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LeastSquaresConverter</h4>
<pre>public&nbsp;LeastSquaresConverter(<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateVectorFunction</a>&nbsp;function,
                     double[]&nbsp;observations)</pre>
<div class="block">Builds a simple converter for uncorrelated residuals with identical
 weights.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>function</code> - vectorial residuals function to wrap</dd><dd><code>observations</code> - observations to be compared to objective function to compute residuals</dd></dl>
</li>
</ul>
<a name="LeastSquaresConverter(org.apache.commons.math3.analysis.MultivariateVectorFunction, double[], double[])">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LeastSquaresConverter</h4>
<pre>public&nbsp;LeastSquaresConverter(<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateVectorFunction</a>&nbsp;function,
                     double[]&nbsp;observations,
                     double[]&nbsp;weights)</pre>
<div class="block">Builds a simple converter for uncorrelated residuals with the
 specified weights.
 <p>
 The scalar objective function value is computed as:
 <pre>
 objective = &sum;weight<sub>i</sub>(observation<sub>i</sub>-objective<sub>i</sub>)<sup>2</sup>
 </pre>
 </p>
 <p>
 Weights can be used for example to combine residuals with different standard
 deviations. As an example, consider a residuals array in which even elements
 are angular measurements in degrees with a 0.01&deg; standard deviation and
 odd elements are distance measurements in meters with a 15m standard deviation.
 In this case, the weights array should be initialized with value
 1.0/(0.01<sup>2</sup>) in the even elements and 1.0/(15.0<sup>2</sup>) in the
 odd elements (i.e. reciprocals of variances).
 </p>
 <p>
 The array computed by the objective function, the observations array and the
 weights array must have consistent sizes or a <a href="../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception"><code>DimensionMismatchException</code></a>
 will be triggered while computing the scalar objective.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>function</code> - vectorial residuals function to wrap</dd><dd><code>observations</code> - observations to be compared to objective function to compute residuals</dd><dd><code>weights</code> - weights to apply to the residuals</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the observations vector and the weights
 vector dimensions do not match (objective function dimension is checked only when
 the <a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html#value(double[])"><code>value(double[])</code></a> method is called)</dd></dl>
</li>
</ul>
<a name="LeastSquaresConverter(org.apache.commons.math3.analysis.MultivariateVectorFunction, double[], org.apache.commons.math3.linear.RealMatrix)">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LeastSquaresConverter</h4>
<pre>public&nbsp;LeastSquaresConverter(<a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateVectorFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateVectorFunction</a>&nbsp;function,
                     double[]&nbsp;observations,
                     <a href="../../../../../../../org/apache/commons/math3/linear/RealMatrix.html" title="interface in org.apache.commons.math3.linear">RealMatrix</a>&nbsp;scale)</pre>
<div class="block">Builds a simple converter for correlated residuals with the
 specified weights.
 <p>
 The scalar objective function value is computed as:
 <pre>
 objective = y<sup>T</sup>y with y = scale&times;(observation-objective)
 </pre>
 </p>
 <p>
 The array computed by the objective function, the observations array and the
 the scaling matrix must have consistent sizes or a <a href="../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception"><code>DimensionMismatchException</code></a>
 will be triggered while computing the scalar objective.
 </p></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>function</code> - vectorial residuals function to wrap</dd><dd><code>observations</code> - observations to be compared to objective function to compute residuals</dd><dd><code>scale</code> - scaling matrix</dd>
<dt><span class="strong">Throws:</span></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/exception/DimensionMismatchException.html" title="class in org.apache.commons.math3.exception">DimensionMismatchException</a></code> - if the observations vector and the scale
 matrix dimensions do not match (objective function dimension is checked only when
 the <a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html#value(double[])"><code>value(double[])</code></a> method is called)</dd></dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method_detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="value(double[])">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>value</h4>
<pre>public&nbsp;double&nbsp;value(double[]&nbsp;point)</pre>
<div class="block">Compute the value for the function at the given point.</div>
<dl>
<dt><strong>Specified by:</strong></dt>
<dd><code><a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html#value(double[])">value</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/commons/math3/analysis/MultivariateFunction.html" title="interface in org.apache.commons.math3.analysis">MultivariateFunction</a></code></dd>
<dt><span class="strong">Parameters:</span></dt><dd><code>point</code> - Point at which the function must be evaluated.</dd>
<dt><span class="strong">Returns:</span></dt><dd>the function value for the given point.</dd></dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar_bottom">
<!--   -->
</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/LeastSquaresConverter.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><em><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script></em></div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/GradientMultivariateOptimizer.html" title="class in org.apache.commons.math3.optim.nonlinear.scalar"><span class="strong">Prev Class</span></a></li>
<li><a href="../../../../../../../org/apache/commons/math3/optim/nonlinear/scalar/LineSearch.html" title="class in org.apache.commons.math3.optim.nonlinear.scalar"><span class="strong">Next Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/commons/math3/optim/nonlinear/scalar/LeastSquaresConverter.html" target="_top">Frames</a></li>
<li><a href="LeastSquaresConverter.html" target="_top">No Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor_detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method_detail">Method</a></li>
</ul>
</div>
<a name="skip-navbar_bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2003&#x2013;2016 <a href="http://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>
